#!/usr/bin/env python

strSelectRecepcionInsumo = """SELECT r.codigo_recepcion_insumo,
                                     i.descripcion_insumo,
                                     r.codigo_insumo,
                                     r.cantidad_producto,
                                     r.fecha_recepcion_insumo,
                                     r.hora_recepcion_insumo,
                                     r.fecha_vencimiento,
                                     r.lote_producto,
                                     r.numero_documento,
                                     r.codigo_tipo_documento,
                                     t.descripcion_tipo_documento,
                                     r.rut_proveedor,
                                     f. descripcion_ficha,
                                     r.codigo_unidad,
                                     s.descripcion_unidad,
                                     r.codigo_temporada,
                                     'Temporada ' || date_part('year', te.fecha_inicio) || '-' 
                                    || date_part('year', te.fecha_termino) as descripcion_temporada 
                              FROM traza.recepcion_insumo r
                              INNER JOIN traza.insumo i ON r.codigo_insumo = i.codigo_insumo
                              INNER JOIN  traza.tipo_documento t on r.codigo_tipo_documento = t.codigo_tipo_documento
                              INNER JOIN  traza.ficha f on r.rut_proveedor = f.rut_ficha
                              INNER JOIN traza.unidad s on r.codigo_unidad = s.codigo_unidad
                              INNER JOIN traza.temporada te on r.codigo_temporada = te.codigo_temporada
                              ORDER BY r.codigo_recepcion_insumo DESC"""
                              
strSelectFiltroRecepcionInsumo = """SELECT r.codigo_recepcion_insumo,
                                     i.descripcion_insumo,
                                     r.cantidad_producto,
                                     r.fecha_recepcion_insumo,
                                     r.hora_recepcion_insumo,
                                     r.fecha_vencimiento,
                                     r.lote_producto,
                                     r.numero_documento,
                                     t.descripcion_tipo_documento,
                                     f. descripcion_ficha
                              FROM traza.recepcion_insumo r
                              INNER JOIN traza.insumo i
                              ON r.codigo_insumo = i.codigo_insumo
                              INNER JOIN  traza.tipo_documento t
                              ON r.codigo_tipo_documento = t.codigo_tipo_documento
                              INNER JOIN  traza.ficha f on r.rut_proveedor = f.rut_ficha
                              WHERE %s
                              ORDER BY r.fecha_recepcion_insumo, hora_recepcion_insumo"""
                              
strSelectFiltroRecepcionSaldo = """SELECT r.codigo_recepcion_insumo,
                                     i.descripcion_insumo,
                                     case when sum(a.cantidad + a.merma) is null then r.cantidad_producto
                                     else r.cantidad_producto - sum(a.cantidad + a.merma) end as saldo,
                                     r.cantidad_producto,
                                     u.descripcion_unidad,
                                     r.fecha_recepcion_insumo,
                                     r.hora_recepcion_insumo,
                                     r.fecha_vencimiento,
                                     r.lote_producto,
                                     r.numero_documento,
                                     t.descripcion_tipo_documento,
                                     f.descripcion_ficha
                            FROM traza.recepcion_insumo r
                              INNER JOIN traza.insumo i
                              ON r.codigo_insumo = i.codigo_insumo
                              INNER JOIN  traza.tipo_documento t
                              ON r.codigo_tipo_documento = t.codigo_tipo_documento
                              INNER JOIN  traza.ficha f on r.rut_proveedor = f.rut_ficha
                              inner join traza.unidad u on r.codigo_unidad = u.codigo_unidad
                            left join traza.aplicacion_producto a
                            on r.codigo_recepcion_insumo = a.codigo_recepcion_insumo
                            where %s
                            group by
                            r.codigo_recepcion_insumo,
                                     i.descripcion_insumo,
                                     r.cantidad_producto,
                                     u.descripcion_unidad,
                                     r.fecha_recepcion_insumo,
                                     r.hora_recepcion_insumo,
                                     r.fecha_vencimiento,
                                     r.lote_producto,
                                     r.numero_documento,
                                     t.descripcion_tipo_documento, f.descripcion_ficha
                              ORDER BY r.fecha_recepcion_insumo, hora_recepcion_insumo"""
                              
strSelectStockInsumo = """SELECT descripcion_insumo,
                                        SUM(cantidad_producto),
                                        descripcion_unidad,
                                        descripcion_ficha
                                    FROM traza.vw_stock_insumo
                                    GROUP BY descripcion_insumo,
                                    descripcion_unidad,
                                    descripcion_ficha
                                    ORDER BY descripcion_insumo"""
                                    
strSelectStockEstanques = """SELECT s.code_a,
                                    es.descripcion_estanque,
                                    e.entradas,
                                    s.salidas,
                                    (e.entradas-s.salidas) AS saldo
                                FROM
                                (select code_b,
                                SUM(volumen) AS entradas
                                FROM traza.vw_movimiento_estanque
                                GROUP BY code_b) as e
                                LEFT JOIN (
                                SELECT code_a,
                                SUM(volumen) AS salidas
                                FROM traza.vw_movimiento_estanque
                                GROUP BY code_a) AS s
                                ON e.code_b = s.code_a
                                INNER JOIN traza.estanque es
                                ON es.codigo_estanque = s.code_a
                                ORDER BY es.descripcion_estanque"""